home *** CD-ROM | disk | FTP | other *** search
- /* MolObj.h - Copyright 1993 Steve Ludtke */
- /* This is the central program object. It controls everything else */
- #import <objc/Object.h>
- #import <dpsclient/dpsclient.h>
-
- /* update levels */
- #define U_TOTAL 3 /* everything has changed */
- #define U_BONDS 2 /* only bonds and positions have changed */
- #define U_POS 1 /* only positions have changed */
-
- @interface MolObj:Object
- {
- id vWindow; /* D3View window */
- id molView; /* D3View */
- id inspector; /* inspector object */
- id chiDevDis; /* chi display for fitting (unused) */
- id c2Dis; /* more unused number displays */
- id csDis;
- id hba; /* H bond display alpha */
- id hb3; /* H bond display 3-10 helix */
-
- Molecule mol[MAXMOL]; /* storage for the molecules */
- struct ELINFO elinfo[NEL]; /* storage for the element info table */
- int nmol; /* # of molecules */
- float chi; /* std dev. not angle */
- int stepmode; /* unused */
- float cstep; /* unused */
- }
-
- -init;
- -readPdb:sender; /* read Protein Data Bank file */
- -readMol:sender; /* read Molviewer format files (in transition) */
- -readAlch:sender; /* read an Alchemy molecule */
- -remMol:sender; /* delete the current molecule */
- -update:(int)level; /* update everything */
- -setupMol; /* see source */
- -dump:sender; /* write an Alchemy file */
- -asnBnd:(int)nm; /* build redundant bond table */
- -(float)calcChi:sender; /* for fitting, unused */
- -minStep:sender; /* ditto */
- -resetCs:sender; /* ditto */
- -togFit:sender; /* ditto */
-
- /* locate and indentify all of the amino acids in the current molecule */
- -findAA:sender;
-
- /* rotate dihedral by angle a on axis from atom n1 to n2 */
- -rotateAbout:(float)a :(int)n1 :(int)n2;
-
- /* calculate a dihedral angle from 4 atoms (does not check for bonding) */
- -(float)dihedral:(int)n1 :(int)n2 :(int)n3 :(int)n4;
-
- /* measure bond angle (does not check for bonding */
- -(float)bondAng:(int)n1 :(int)n2 :(int)n3;
-
- /* set dihedrals for selected amino acids */
- -setOmega:(float)ang;
- -setPsi:(float)ang;
- -setPhi:(float)ang;
-
- -rotest:sender; /* test method, unused */
- -centerMol:(int)m; /* center the molecule on the screen */
-
- /* initializations that cannot occur until everything has been loaded */
- -appDidInit:sender;
-
- /* select atoms from a SelectView list */
- -setSelAtom:(struct SELDAT *)list;
-
- /* set D3View window to a variety of useful sizes */
- -set320:sender;
- -set640:sender;
- -set533:sender;
- -set6404:sender;
- @end